import router from '@/router'
import store from '@/store'
import axios from 'axios'

const instance = axios.create({
  // 根路径
  baseURL: 'http://toutiao.itheima.net',
  // 设置超时间
  timeout: 5000
})

//  请求   拦截器
instance.interceptors.request.use(
  function (config) {
    //  console.log(config)
    // 在发送请求之前做些什么
    const token = store.state.user.token.token
    // 判断有没有token
    if (token) {
      // 给headers 添加 Authorization
      config.headers.Authorization = 'Bearer ' + token
    }

    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

//   响应   拦截器
instance.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么:   比如 可以让我们后面拿到data数据少一层嵌套
    return response.data
  },
  function (error) {
    console.log(error) // 响应错误返回的对象
    // 对响应错误做点什么
    // 判断token是否过期
    if (error.response.status === 401) {
      router.push('/login')
    }
    return Promise.reject(error)
  }
)

// 导出axios的实例对象
export default instance
